home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DLight.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  8.6 KB  |  200 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DLight.p
  3.  
  4.      Contains:    Generic light routines                                             
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT QD3DLight;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __QD3DLIGHT__}
  28. {$SETC __QD3DLIGHT__ := 1}
  29.  
  30. {$I+}
  31. {$SETC QD3DLightIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __QD3D__}
  35. {$I QD3D.p}
  36. {$ENDC}
  37.  
  38.  
  39. {$PUSH}
  40. {$ALIGN POWER}
  41. {$LibExport+}
  42.  
  43. {*****************************************************************************
  44.  **                                                                             **
  45.  **                            Enum Definitions                                 **
  46.  **                                                                             **
  47.  ****************************************************************************}
  48.  
  49. TYPE
  50.     TQ3AttenuationType             = LONGINT;
  51. CONST
  52.     kQ3AttenuationTypeNone        = {TQ3AttenuationType}0;
  53.     kQ3AttenuationTypeInverseDistance = {TQ3AttenuationType}1;
  54.     kQ3AttenuationTypeInverseDistanceSquared = {TQ3AttenuationType}2;
  55.  
  56.  
  57.  
  58. TYPE
  59.     TQ3FallOffType                 = LONGINT;
  60. CONST
  61.     kQ3FallOffTypeNone            = {TQ3FallOffType}0;
  62.     kQ3FallOffTypeLinear        = {TQ3FallOffType}1;
  63.     kQ3FallOffTypeExponential    = {TQ3FallOffType}2;
  64.     kQ3FallOffTypeCosine        = {TQ3FallOffType}3;
  65.  
  66.  
  67. {*****************************************************************************
  68.  **                                                                             **
  69.  **                            Data Structure Definitions                         **
  70.  **                                                                             **
  71.  ****************************************************************************}
  72.  
  73. TYPE
  74.     TQ3LightDataPtr = ^TQ3LightData;
  75.     TQ3LightData = RECORD
  76.         isOn:                    TQ3Boolean;
  77.         brightness:                Single;
  78.         color:                    TQ3ColorRGB;
  79.     END;
  80.  
  81.     TQ3DirectionalLightDataPtr = ^TQ3DirectionalLightData;
  82.     TQ3DirectionalLightData = RECORD
  83.         lightData:                TQ3LightData;
  84.         castsShadows:            TQ3Boolean;
  85.         direction:                TQ3Vector3D;
  86.     END;
  87.  
  88.     TQ3PointLightDataPtr = ^TQ3PointLightData;
  89.     TQ3PointLightData = RECORD
  90.         lightData:                TQ3LightData;
  91.         castsShadows:            TQ3Boolean;
  92.         attenuation:            TQ3AttenuationType;
  93.         location:                TQ3Point3D;
  94.     END;
  95.  
  96.     TQ3SpotLightDataPtr = ^TQ3SpotLightData;
  97.     TQ3SpotLightData = RECORD
  98.         lightData:                TQ3LightData;
  99.         castsShadows:            TQ3Boolean;
  100.         attenuation:            TQ3AttenuationType;
  101.         location:                TQ3Point3D;
  102.         direction:                TQ3Vector3D;
  103.         hotAngle:                Single;
  104.         outerAngle:                Single;
  105.         fallOff:                TQ3FallOffType;
  106.     END;
  107.  
  108. {*****************************************************************************
  109.  **                                                                             **
  110.  **                    Light routines (apply to all TQ3LightObjects)             **
  111.  **                                                                             **
  112.  ****************************************************************************}
  113. FUNCTION Q3Light_GetType(light: TQ3LightObject): LONGINT; C;
  114. FUNCTION Q3Light_GetState(light: TQ3LightObject; VAR isOn: TQ3Boolean): TQ3Status; C;
  115. FUNCTION Q3Light_GetBrightness(light: TQ3LightObject; VAR brightness: Single): TQ3Status; C;
  116. FUNCTION Q3Light_GetColor(light: TQ3LightObject; VAR color: TQ3ColorRGB): TQ3Status; C;
  117. FUNCTION Q3Light_SetState(light: TQ3LightObject; isOn: TQ3Boolean): TQ3Status; C;
  118. FUNCTION Q3Light_SetBrightness(light: TQ3LightObject; brightness: Single): TQ3Status; C;
  119. FUNCTION Q3Light_SetColor(light: TQ3LightObject; {CONST}VAR color: TQ3ColorRGB): TQ3Status; C;
  120. FUNCTION Q3Light_GetData(light: TQ3LightObject; VAR lightData: TQ3LightData): TQ3Status; C;
  121. FUNCTION Q3Light_SetData(light: TQ3LightObject; {CONST}VAR lightData: TQ3LightData): TQ3Status; C;
  122.  
  123. {*****************************************************************************
  124.  **                                                                             **
  125.  **                            Specific Light Routines                               **
  126.  **                                                                             **
  127.  ****************************************************************************}
  128. {*****************************************************************************
  129.  **                                                                             **
  130.  **                            Ambient Light                                       **
  131.  **                                                                             **
  132.  ****************************************************************************}
  133. FUNCTION Q3AmbientLight_New({CONST}VAR lightData: TQ3LightData): TQ3LightObject; C;
  134. FUNCTION Q3AmbientLight_GetData(light: TQ3LightObject; VAR lightData: TQ3LightData): TQ3Status; C;
  135. FUNCTION Q3AmbientLight_SetData(light: TQ3LightObject; {CONST}VAR lightData: TQ3LightData): TQ3Status; C;
  136.  
  137. {*****************************************************************************
  138.  **                                                                             **
  139.  **                        Directional Light                                     **
  140.  **                                                                             **
  141.  ****************************************************************************}
  142. FUNCTION Q3DirectionalLight_New({CONST}VAR directionalLightData: TQ3DirectionalLightData): TQ3LightObject; C;
  143. FUNCTION Q3DirectionalLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  144. FUNCTION Q3DirectionalLight_GetDirection(light: TQ3LightObject; VAR direction: TQ3Vector3D): TQ3Status; C;
  145. FUNCTION Q3DirectionalLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  146. FUNCTION Q3DirectionalLight_SetDirection(light: TQ3LightObject; {CONST}VAR direction: TQ3Vector3D): TQ3Status; C;
  147. FUNCTION Q3DirectionalLight_GetData(light: TQ3LightObject; VAR directionalLightData: TQ3DirectionalLightData): TQ3Status; C;
  148. FUNCTION Q3DirectionalLight_SetData(light: TQ3LightObject; {CONST}VAR directionalLightData: TQ3DirectionalLightData): TQ3Status; C;
  149.  
  150. {*****************************************************************************
  151.  **                                                                             **
  152.  **                        Point Light                                              **
  153.  **                                                                             **
  154.  ****************************************************************************}
  155. FUNCTION Q3PointLight_New({CONST}VAR pointLightData: TQ3PointLightData): TQ3LightObject; C;
  156. FUNCTION Q3PointLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  157. FUNCTION Q3PointLight_GetAttenuation(light: TQ3LightObject; VAR attenuation: TQ3AttenuationType): TQ3Status; C;
  158. FUNCTION Q3PointLight_GetLocation(light: TQ3LightObject; VAR location: TQ3Point3D): TQ3Status; C;
  159. FUNCTION Q3PointLight_GetData(light: TQ3LightObject; VAR pointLightData: TQ3PointLightData): TQ3Status; C;
  160. FUNCTION Q3PointLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  161. FUNCTION Q3PointLight_SetAttenuation(light: TQ3LightObject; attenuation: TQ3AttenuationType): TQ3Status; C;
  162. FUNCTION Q3PointLight_SetLocation(light: TQ3LightObject; {CONST}VAR location: TQ3Point3D): TQ3Status; C;
  163. FUNCTION Q3PointLight_SetData(light: TQ3LightObject; {CONST}VAR pointLightData: TQ3PointLightData): TQ3Status; C;
  164.  
  165. {*****************************************************************************
  166.  **                                                                             **
  167.  **                        Spot Light                                              **
  168.  **                                                                             **
  169.  ****************************************************************************}
  170. FUNCTION Q3SpotLight_New({CONST}VAR spotLightData: TQ3SpotLightData): TQ3LightObject; C;
  171. FUNCTION Q3SpotLight_GetCastShadowsState(light: TQ3LightObject; VAR castsShadows: TQ3Boolean): TQ3Status; C;
  172. FUNCTION Q3SpotLight_GetAttenuation(light: TQ3LightObject; VAR attenuation: TQ3AttenuationType): TQ3Status; C;
  173. FUNCTION Q3SpotLight_GetLocation(light: TQ3LightObject; VAR location: TQ3Point3D): TQ3Status; C;
  174. FUNCTION Q3SpotLight_GetDirection(light: TQ3LightObject; VAR direction: TQ3Vector3D): TQ3Status; C;
  175. FUNCTION Q3SpotLight_GetHotAngle(light: TQ3LightObject; VAR hotAngle: Single): TQ3Status; C;
  176. FUNCTION Q3SpotLight_GetOuterAngle(light: TQ3LightObject; VAR outerAngle: Single): TQ3Status; C;
  177. FUNCTION Q3SpotLight_GetFallOff(light: TQ3LightObject; VAR fallOff: TQ3FallOffType): TQ3Status; C;
  178. FUNCTION Q3SpotLight_GetData(light: TQ3LightObject; VAR spotLightData: TQ3SpotLightData): TQ3Status; C;
  179. FUNCTION Q3SpotLight_SetCastShadowsState(light: TQ3LightObject; castsShadows: TQ3Boolean): TQ3Status; C;
  180. FUNCTION Q3SpotLight_SetAttenuation(light: TQ3LightObject; attenuation: TQ3AttenuationType): TQ3Status; C;
  181. FUNCTION Q3SpotLight_SetLocation(light: TQ3LightObject; {CONST}VAR location: TQ3Point3D): TQ3Status; C;
  182. FUNCTION Q3SpotLight_SetDirection(light: TQ3LightObject; {CONST}VAR direction: TQ3Vector3D): TQ3Status; C;
  183. FUNCTION Q3SpotLight_SetHotAngle(light: TQ3LightObject; hotAngle: Single): TQ3Status; C;
  184. FUNCTION Q3SpotLight_SetOuterAngle(light: TQ3LightObject; outerAngle: Single): TQ3Status; C;
  185. FUNCTION Q3SpotLight_SetFallOff(light: TQ3LightObject; fallOff: TQ3FallOffType): TQ3Status; C;
  186. FUNCTION Q3SpotLight_SetData(light: TQ3LightObject; {CONST}VAR spotLightData: TQ3SpotLightData): TQ3Status; C;
  187.  
  188.  
  189.  
  190. {$ALIGN RESET}
  191. {$POP}
  192.  
  193. {$SETC UsingIncludes := QD3DLightIncludes}
  194.  
  195. {$ENDC} {__QD3DLIGHT__}
  196.  
  197. {$IFC NOT UsingIncludes}
  198.  END.
  199. {$ENDC}
  200.